{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Denoise_Signal-blog.ipynb",
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "mNinDMvsptGy",
        "outputId": "ef6cd323-7806-4ccb-a57b-5fd18f679fea"
      },
      "source": [
        "!pip install deep-xf"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Collecting deep-xf\n",
            "  Downloading deep_xf-0.0.5-py3-none-any.whl (35 kB)\n",
            "Requirement already satisfied: tqdm in /usr/local/lib/python3.7/dist-packages (from deep-xf) (4.62.3)\n",
            "Requirement already satisfied: torch in /usr/local/lib/python3.7/dist-packages (from deep-xf) (1.9.0+cu111)\n",
            "Requirement already satisfied: jupyter in /usr/local/lib/python3.7/dist-packages (from deep-xf) (1.0.0)\n",
            "Collecting py-ecg-detectors\n",
            "  Downloading py_ecg_detectors-1.1.0-py3-none-any.whl (23 kB)\n",
            "Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (from deep-xf) (1.1.5)\n",
            "Collecting scikit-learn>=0.24.0\n",
            "  Downloading scikit_learn-1.0.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (23.2 MB)\n",
            "\u001b[K     |████████████████████████████████| 23.2 MB 1.8 MB/s \n",
            "\u001b[?25hCollecting statsmodels==0.12.2\n",
            "  Downloading statsmodels-0.12.2-cp37-cp37m-manylinux1_x86_64.whl (9.5 MB)\n",
            "\u001b[K     |████████████████████████████████| 9.5 MB 27.4 MB/s \n",
            "\u001b[?25hRequirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from deep-xf) (3.2.2)\n",
            "Collecting shap==0.39.0\n",
            "  Downloading shap-0.39.0.tar.gz (356 kB)\n",
            "\u001b[K     |████████████████████████████████| 356 kB 43.3 MB/s \n",
            "\u001b[?25hRequirement already satisfied: keras in /usr/local/lib/python3.7/dist-packages (from deep-xf) (2.6.0)\n",
            "Requirement already satisfied: pandas-profiling in /usr/local/lib/python3.7/dist-packages (from deep-xf) (1.4.1)\n",
            "Requirement already satisfied: ipython in /usr/local/lib/python3.7/dist-packages (from deep-xf) (5.5.0)\n",
            "Collecting seaborn==0.9.0\n",
            "  Downloading seaborn-0.9.0-py3-none-any.whl (208 kB)\n",
            "\u001b[K     |████████████████████████████████| 208 kB 45.3 MB/s \n",
            "\u001b[?25hRequirement already satisfied: scipy>=0.14.0 in /usr/local/lib/python3.7/dist-packages (from seaborn==0.9.0->deep-xf) (1.4.1)\n",
            "Requirement already satisfied: numpy>=1.9.3 in /usr/local/lib/python3.7/dist-packages (from seaborn==0.9.0->deep-xf) (1.19.5)\n",
            "Collecting slicer==0.0.7\n",
            "  Downloading slicer-0.0.7-py3-none-any.whl (14 kB)\n",
            "Requirement already satisfied: numba in /usr/local/lib/python3.7/dist-packages (from shap==0.39.0->deep-xf) (0.51.2)\n",
            "Requirement already satisfied: cloudpickle in /usr/local/lib/python3.7/dist-packages (from shap==0.39.0->deep-xf) (1.3.0)\n",
            "Requirement already satisfied: patsy>=0.5 in /usr/local/lib/python3.7/dist-packages (from statsmodels==0.12.2->deep-xf) (0.5.2)\n",
            "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->deep-xf) (2.4.7)\n",
            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->deep-xf) (0.10.0)\n",
            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->deep-xf) (1.3.2)\n",
            "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->deep-xf) (2.8.2)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from cycler>=0.10->matplotlib->deep-xf) (1.15.0)\n",
            "Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas->deep-xf) (2018.9)\n",
            "Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.7/dist-packages (from scikit-learn>=0.24.0->deep-xf) (1.0.1)\n",
            "Collecting threadpoolctl>=2.0.0\n",
            "  Downloading threadpoolctl-3.0.0-py3-none-any.whl (14 kB)\n",
            "Requirement already satisfied: pickleshare in /usr/local/lib/python3.7/dist-packages (from ipython->deep-xf) (0.7.5)\n",
            "Requirement already satisfied: pygments in /usr/local/lib/python3.7/dist-packages (from ipython->deep-xf) (2.6.1)\n",
            "Requirement already satisfied: simplegeneric>0.8 in /usr/local/lib/python3.7/dist-packages (from ipython->deep-xf) (0.8.1)\n",
            "Requirement already satisfied: pexpect in /usr/local/lib/python3.7/dist-packages (from ipython->deep-xf) (4.8.0)\n",
            "Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.7/dist-packages (from ipython->deep-xf) (57.4.0)\n",
            "Requirement already satisfied: decorator in /usr/local/lib/python3.7/dist-packages (from ipython->deep-xf) (4.4.2)\n",
            "Requirement already satisfied: prompt-toolkit<2.0.0,>=1.0.4 in /usr/local/lib/python3.7/dist-packages (from ipython->deep-xf) (1.0.18)\n",
            "Requirement already satisfied: traitlets>=4.2 in /usr/local/lib/python3.7/dist-packages (from ipython->deep-xf) (5.1.0)\n",
            "Requirement already satisfied: wcwidth in /usr/local/lib/python3.7/dist-packages (from prompt-toolkit<2.0.0,>=1.0.4->ipython->deep-xf) (0.2.5)\n",
            "Requirement already satisfied: jupyter-console in /usr/local/lib/python3.7/dist-packages (from jupyter->deep-xf) (5.2.0)\n",
            "Requirement already satisfied: ipykernel in /usr/local/lib/python3.7/dist-packages (from jupyter->deep-xf) (4.10.1)\n",
            "Requirement already satisfied: ipywidgets in /usr/local/lib/python3.7/dist-packages (from jupyter->deep-xf) (7.6.5)\n",
            "Requirement already satisfied: nbconvert in /usr/local/lib/python3.7/dist-packages (from jupyter->deep-xf) (5.6.1)\n",
            "Requirement already satisfied: notebook in /usr/local/lib/python3.7/dist-packages (from jupyter->deep-xf) (5.3.1)\n",
            "Requirement already satisfied: qtconsole in /usr/local/lib/python3.7/dist-packages (from jupyter->deep-xf) (5.1.1)\n",
            "Requirement already satisfied: tornado>=4.0 in /usr/local/lib/python3.7/dist-packages (from ipykernel->jupyter->deep-xf) (5.1.1)\n",
            "Requirement already satisfied: jupyter-client in /usr/local/lib/python3.7/dist-packages (from ipykernel->jupyter->deep-xf) (5.3.5)\n",
            "Requirement already satisfied: ipython-genutils~=0.2.0 in /usr/local/lib/python3.7/dist-packages (from ipywidgets->jupyter->deep-xf) (0.2.0)\n",
            "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /usr/local/lib/python3.7/dist-packages (from ipywidgets->jupyter->deep-xf) (1.0.2)\n",
            "Requirement already satisfied: nbformat>=4.2.0 in /usr/local/lib/python3.7/dist-packages (from ipywidgets->jupyter->deep-xf) (5.1.3)\n",
            "Requirement already satisfied: widgetsnbextension~=3.5.0 in /usr/local/lib/python3.7/dist-packages (from ipywidgets->jupyter->deep-xf) (3.5.1)\n",
            "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /usr/local/lib/python3.7/dist-packages (from nbformat>=4.2.0->ipywidgets->jupyter->deep-xf) (2.6.0)\n",
            "Requirement already satisfied: jupyter-core in /usr/local/lib/python3.7/dist-packages (from nbformat>=4.2.0->ipywidgets->jupyter->deep-xf) (4.8.1)\n",
            "Requirement already satisfied: jinja2 in /usr/local/lib/python3.7/dist-packages (from notebook->jupyter->deep-xf) (2.11.3)\n",
            "Requirement already satisfied: Send2Trash in /usr/local/lib/python3.7/dist-packages (from notebook->jupyter->deep-xf) (1.8.0)\n",
            "Requirement already satisfied: terminado>=0.8.1 in /usr/local/lib/python3.7/dist-packages (from notebook->jupyter->deep-xf) (0.12.1)\n",
            "Requirement already satisfied: pyzmq>=13 in /usr/local/lib/python3.7/dist-packages (from jupyter-client->ipykernel->jupyter->deep-xf) (22.3.0)\n",
            "Requirement already satisfied: ptyprocess in /usr/local/lib/python3.7/dist-packages (from terminado>=0.8.1->notebook->jupyter->deep-xf) (0.7.0)\n",
            "Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.7/dist-packages (from jinja2->notebook->jupyter->deep-xf) (2.0.1)\n",
            "Requirement already satisfied: defusedxml in /usr/local/lib/python3.7/dist-packages (from nbconvert->jupyter->deep-xf) (0.7.1)\n",
            "Requirement already satisfied: entrypoints>=0.2.2 in /usr/local/lib/python3.7/dist-packages (from nbconvert->jupyter->deep-xf) (0.3)\n",
            "Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.7/dist-packages (from nbconvert->jupyter->deep-xf) (1.5.0)\n",
            "Requirement already satisfied: mistune<2,>=0.8.1 in /usr/local/lib/python3.7/dist-packages (from nbconvert->jupyter->deep-xf) (0.8.4)\n",
            "Requirement already satisfied: testpath in /usr/local/lib/python3.7/dist-packages (from nbconvert->jupyter->deep-xf) (0.5.0)\n",
            "Requirement already satisfied: bleach in /usr/local/lib/python3.7/dist-packages (from nbconvert->jupyter->deep-xf) (4.1.0)\n",
            "Requirement already satisfied: webencodings in /usr/local/lib/python3.7/dist-packages (from bleach->nbconvert->jupyter->deep-xf) (0.5.1)\n",
            "Requirement already satisfied: packaging in /usr/local/lib/python3.7/dist-packages (from bleach->nbconvert->jupyter->deep-xf) (21.0)\n",
            "Requirement already satisfied: llvmlite<0.35,>=0.34.0.dev0 in /usr/local/lib/python3.7/dist-packages (from numba->shap==0.39.0->deep-xf) (0.34.0)\n",
            "Collecting gatspy\n",
            "  Downloading gatspy-0.3.tar.gz (554 kB)\n",
            "\u001b[K     |████████████████████████████████| 554 kB 44.8 MB/s \n",
            "\u001b[?25hRequirement already satisfied: pywavelets in /usr/local/lib/python3.7/dist-packages (from py-ecg-detectors->deep-xf) (1.1.1)\n",
            "Requirement already satisfied: qtpy in /usr/local/lib/python3.7/dist-packages (from qtconsole->jupyter->deep-xf) (1.11.2)\n",
            "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from torch->deep-xf) (3.7.4.3)\n",
            "Building wheels for collected packages: shap, gatspy\n",
            "  Building wheel for shap (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for shap: filename=shap-0.39.0-cp37-cp37m-linux_x86_64.whl size=491636 sha256=d3aff8d4849ce88c7a605b4cff1371752c33e613bc7264b17c85cb5d67161b58\n",
            "  Stored in directory: /root/.cache/pip/wheels/ca/25/8f/6ae5df62c32651cd719e972e738a8aaa4a87414c4d2b14c9c0\n",
            "  Building wheel for gatspy (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for gatspy: filename=gatspy-0.3-py3-none-any.whl size=43819 sha256=8256f0619c830947323a8fd8b4d231a316067f52238ed499ac8e4f47f4e31c37\n",
            "  Stored in directory: /root/.cache/pip/wheels/1f/c1/4c/8de278f816259b4f67e2356c0bda260a593375661e400bf31f\n",
            "Successfully built shap gatspy\n",
            "Installing collected packages: threadpoolctl, slicer, scikit-learn, gatspy, statsmodels, shap, seaborn, py-ecg-detectors, deep-xf\n",
            "  Attempting uninstall: scikit-learn\n",
            "    Found existing installation: scikit-learn 0.22.2.post1\n",
            "    Uninstalling scikit-learn-0.22.2.post1:\n",
            "      Successfully uninstalled scikit-learn-0.22.2.post1\n",
            "  Attempting uninstall: statsmodels\n",
            "    Found existing installation: statsmodels 0.10.2\n",
            "    Uninstalling statsmodels-0.10.2:\n",
            "      Successfully uninstalled statsmodels-0.10.2\n",
            "  Attempting uninstall: seaborn\n",
            "    Found existing installation: seaborn 0.11.2\n",
            "    Uninstalling seaborn-0.11.2:\n",
            "      Successfully uninstalled seaborn-0.11.2\n",
            "Successfully installed deep-xf-0.0.5 gatspy-0.3 py-ecg-detectors-1.1.0 scikit-learn-1.0.1 seaborn-0.9.0 shap-0.39.0 slicer-0.0.7 statsmodels-0.12.2 threadpoolctl-3.0.0\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "LFN65HWVs3DM"
      },
      "source": [
        "\"\"\"\n",
        "@author: Ajay\n",
        "@Date: 30/10/2021\n",
        "\"\"\""
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "O131wnCws849"
      },
      "source": [
        "\"\"\"\n",
        "# Proof-Of-Concept: Denoising ECGs signals recored from sports jacketwear events\n",
        "\"\"\""
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "W8QxtIZztrvb",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "9913f8df-2f85-42e1-9b4d-39c6070bca11"
      },
      "source": [
        "from deep_xf.denoise import *"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Imported DeepXF version:0.0.5. Example call by using:\n",
            "\n",
            "******************   SET FORECAST MODEL/BASE CONFIGURATIONS   ********************\n",
            "\n",
            "# select algorithms, scaler, etc.\n",
            "select_model, select_user_path, select_scaler, forecast_window = Forecast.set_model_config(select_model='rnn', select_user_path='./forecast_folder_path/', select_scaler='minmax', forecast_window=1)\n",
            "\n",
            "----------------------------------------------------------------------------------\n",
            "\n",
            "# set variables\n",
            "ts, fc = Forecast.set_variable(ts='Datetime', fc='PJME_MW')\n",
            "\n",
            "# get variables\n",
            "model_df, orig_df = Helper.get_variable(df, ts, fc)\n",
            "\n",
            "----------------------------------------------------------------------------------\n",
            "\n",
            "# set hyperparameters\n",
            "hidden_dim, layer_dim, batch_size, dropout, n_epochs, learning_rate, weight_decay = Forecast.hyperparameter_config(hidden_dim=64,layer_dim = 3, batch_size=64, dropout = 0.2, n_epochs = 30, learning_rate = 1e-3, weight_decay = 1e-6)\n",
            "\n",
            "----------------------------------------------------------------------------------\n",
            "\n",
            "*****************   Calling DEEP LEARNING BASED FORECASTING   *********************\n",
            "\n",
            "# train selected deep learning model\n",
            "opt, scaler = Forecast.train(df=df_full_features, target_col='value', split_ratio=0.2, select_model=select_model, select_scaler=select_scaler, forecast_window=forecast_window, batch_size=batch_size, hidden_dim=hidden_dim, layer_dim=layer_dim,dropout=dropout, n_epochs=n_epochs, learning_rate=learning_rate, weight_decay=weight_decay)\n",
            "\n",
            "----------------------------------------------------------------------------------\n",
            "\n",
            "# forecast for the user provided window\n",
            "forecasted_data, ff_full_features, ff_full_features_ = Forecast.forecast(model_df, ts, fc, opt, scaler, period=25, fq='1h', select_scaler=select_scaler,)\n",
            "\n",
            "---------------------------------------------------------------------------------\n",
            "\n",
            "# model interpretation\n",
            "Helper.explainable_forecast(df_full_features, ff_full_features_, fc, specific_prediction_sample_to_explain=df.shape[0]+2, input_label_index_value=0, num_labels=1)\n",
            "\n",
            "\n",
            "******************   DYNAMIC FACTOR MODEL BASED NOWCASTING   *********************\n",
            "\n",
            "# select algorithms, scaler, etc.\n",
            "select_model, select_user_path, select_scaler, forecast_window = Forecast.set_model_config(select_model='em', select_user_path='./forecast_folder_path/', select_scaler='minmax', forecast_window=5)\n",
            "\n",
            "----------------------------------------------------------------------------------\n",
            "\n",
            "# train nowcasting model with EM-algorithm\n",
            "nowcast_full_data, nowcast_pred_data = EMModel.nowcast(df_full_features, ts, fc, period=5, fq='1h', forecast_window=forecast_window, select_model=select_model)\n",
            "\n",
            "----------------------------------------------------------------------------------\n",
            "\n",
            "# get interpretable results\n",
            "EMModel.explainable_nowcast(df_full_features, nowcast_pred_data, fc, specific_prediction_sample_to_explain=df.shape[0]+2, input_label_index_value=0, num_labels=1)\n",
            "\n",
            "***********************   DENOISING TIMESERIES ECG SIGNALS   **********************\n",
            "\n",
            "# set thresholds\n",
            "fs, order, cutoff_high, cutoff_low, powerline, nyq = Denoise.set_parameters(fs = 500, order = 5, cutoff_high = 0.5, cutoff_low = 2, powerline = 60)\n",
            "\n",
            "# filter noise and save output\n",
            "Denoise.plot_and_write(ecg_signal_data, featurecol_index=2, fs=fs, cutoff_high=cutoff_high, cutoff_low=cutoff_low, nyq = nyq, powerline=powerline, order=order)\n",
            "\n",
            "\n",
            "***********************   TIMESERIES ECG SIGNAL SIMILARITY   **********************\n",
            "\n",
            "# configure, and train siamese neural network\n",
            "sm = Siamese.Siamese_Model(5) # 5 - # number of features\n",
            "sm.compile(loss='mse', optimizer='adam', metrics=['mse', 'mae', 'mape', 'cosine'])\n",
            "score = sm(inputs=[np.array(activity_input_sequence_1), np.array(activity_input_sequence_2)]) # signal similarity scores\n",
            "\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "lkN17_6IsvC9"
      },
      "source": [
        "ecg_signal_data = pd.read_csv('https://raw.githubusercontent.com/ajayarunachalam/Deep_XF/master/processed_data_ecg/processed_sitting_data.csv', skiprows=0)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "qNQor8X9toDd",
        "outputId": "93665e1b-0d73-480b-8b23-6e45db595419"
      },
      "source": [
        "ecg_signal_data.shape"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(30000, 7)"
            ]
          },
          "metadata": {},
          "execution_count": 4
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 111
        },
        "id": "K3SdUYJAuBPL",
        "outputId": "0777d47a-c11b-4c7d-98a4-b2fbe4377f3f"
      },
      "source": [
        "ecg_signal_data.head(2)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Date</th>\n",
              "      <th>Time</th>\n",
              "      <th>ecg1</th>\n",
              "      <th>ecg2</th>\n",
              "      <th>ecg3</th>\n",
              "      <th>ecg4</th>\n",
              "      <th>ecg5</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>2021-04-07</td>\n",
              "      <td>16:20:12.136000</td>\n",
              "      <td>-0.000101</td>\n",
              "      <td>-0.000105</td>\n",
              "      <td>0.000075</td>\n",
              "      <td>0.000179</td>\n",
              "      <td>-0.000045</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>2021-04-07</td>\n",
              "      <td>16:20:12.138000</td>\n",
              "      <td>-0.000003</td>\n",
              "      <td>-0.000160</td>\n",
              "      <td>0.000104</td>\n",
              "      <td>0.000228</td>\n",
              "      <td>-0.000144</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "         Date             Time      ecg1  ...      ecg3      ecg4      ecg5\n",
              "0  2021-04-07  16:20:12.136000 -0.000101  ...  0.000075  0.000179 -0.000045\n",
              "1  2021-04-07  16:20:12.138000 -0.000003  ...  0.000104  0.000228 -0.000144\n",
              "\n",
              "[2 rows x 7 columns]"
            ]
          },
          "metadata": {},
          "execution_count": 5
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "skqeyCvPK0cZ",
        "outputId": "c2ea675e-8df9-4dd6-9a70-901fea6289ff"
      },
      "source": [
        "fs, order, cutoff_high, cutoff_low, powerline, nyq = Denoise.set_parameters(fs = 500, order = 5, cutoff_high = 0.5, cutoff_low = 2, powerline = 60)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "fs = 500\n",
            "order = 5\n",
            "cutoff_high = 0.5\n",
            "cutoff_low = 2\n",
            "powerline = 60\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ONmbmSeCuCZo"
      },
      "source": [
        "# remove noise with ensembling of filters"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 689
        },
        "id": "WstZ7Y6_uTxv",
        "outputId": "41bf930e-e07e-4216-a64b-fa3df290acfe"
      },
      "source": [
        "Denoise.plot_and_write(ecg_signal_data, featurecol_index=2, fs=fs, cutoff_high=cutoff_high, cutoff_low=cutoff_low, nyq = nyq, powerline=powerline, order=order)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqsAAAELCAYAAAD+78+CAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOydd5wURdrHfzOzOcASlqCgZzpEPRQJggeigIKA4uEZzoAnynEeHHrn8Z5ZwQTqiaLoHiCgBwaQJIiwrOQgsKQFl8wSNs7uzuzu5NT9/tHTPdPTPR1mesIu9f18lJ3uCk9XV1c//dRTT+lomqZBIBAIBAKBQCAkIfpEC0AgEAgEAoFAIISDKKsEAoFAIBAIhKSFKKsEAoFAIBAIhKSFKKsEAoFAIBAIhKSFKKsEAoFAIBAIhKSFKKsEAoFAIBAIhKSFKKuEmPHaa69h9uzZiRZDluLiYgwbNizRYsScp59+GitWrIh5PS+88AJmzpwZ83oIhGTghx9+wLhx4zQvt1u3bjh37pzqfPF6zqMlVu2WbIwcORK7d++OeT2PP/44li5dGvN6EkVKogUgaMfgwYNRV1cHg8GArKwsDBw4EK+++iqys7NjUt/TTz+Nffv2AQDcbjd0Oh1SU1MBAPfccw+mTZsWk3oBYOnSpfjiiy9QU1ODzMxMXH/99Zg5cyZycnJUl9W7d2+sX79eU/l2796NJ554ApmZmbzj8+fPR8+ePQEA27ZtQ0FBAUpLS5Geno6rr74aTz75JIYMGQIAMBqNmDVrFjZv3gybzYa2bduiT58+GD9+PK666irRegsKCrBkyRKYzWbk5ubi5ptvxkcffQQAmDdvnqbXSCAkC8Fjn8FgwNVXX43Ro0fjoYcegl4fW5vMvffei3vvvTemdQQzcuRIVFZWAgCcTidSUlKQksK8yidMmBDT51xqfFFLLNpt+fLlePnll5GRkcE7vm7dOnTs2BEAsHr1aixYsABlZWXIzs7Gtddei7/+9a/o3bs3AODs2bP4+OOPsWvXLrjdbrRv3x4DBw7E+PHj0alTJ0GdbrcbH374IdauXQuLxYI2bdpgyJAhePnllwEAP/74o6bXeLFClNUWRkFBAW699VbU1tbiqaeewpw5c/CPf/wjJnUFD4ovvPACOnbsGLO6gtmzZw9mzpyJefPm4brrrkNDQwM2bdoUUVler5cb6LWmQ4cO2Lp1q+i5devW4aWXXsKLL76IgoICZGdno7i4GD/88AOGDBkCs9mMhx9+GD179sTXX3+Nrl27wmKxYMOGDdi5c6eosrpixQqsWrUKCxcuxGWXXYba2lps3LgxJtdGICQb7NhnsViwZ88evP322ygpKcG7776baNE0JVj5efzxx3HvvffigQceiHm9Wo4vsRx3b7rpJnzzzTei5xYsWIA5c+Zg6tSpGDBgAFJTU7Ft2zb8/PPP6N27N86dO4cHH3wQf/jDH7By5Up06tQJ9fX1WL16Nfbt24eRI0cKypwzZw6OHDmCpUuXokOHDqioqEBxcXFMru1ihrgBtFDy8/MxYMAAHD16lDs2Z84cDB06FD179sSIESOwYcMG7twdd9yBI0eOAGCmZ7p164aTJ08CYKyYf/vb31TLEDwdvHv3btx2222YO3cu+vfvjwEDBqCoqAhbtmzBsGHD0LdvXxQUFHB5KYri5L3lllvw7LPPoqGhAQBw+PBh3HTTTbjuuusAAHl5efjDH/7AWVXdbjdmzJiB22+/Hbfeeitee+01OJ1Onhxz5szB73//e7z44ovcMZaamhr8/e9/R79+/TB48GB89dVX3LmSkhKMGTMGN998M2699daIXoQ0TWP69On429/+hgceeAC5ubnQ6/Xo27cv3nrrLQDAwoULkZOTg/fffx+XXXYZdDodWrVqhfvvvx+PP/64aLmHDx/GgAEDcNlllwFg+sBDDz3EnQ+eJvL5fJg+fTpuueUWDB48GIsWLUK3bt3g9Xq5tB999BGnMI8bNw4mk4kra/Lkyfj973+PXr164dFHH+X6CoGQaHJzczFkyBB89NFHWLFiBU6cOAFA2bgwf/58bnxatmwZV6bFYsH//d//oV+/frjjjjvw2WefgaIoAIw1709/+hMA5tl+55130L9/f9x888245557FNUPMB//AwYMwIABA/D9999HfP3Bz/ny5cvx8MMP45133kHv3r0xZMgQ7N+/H8uXL8egQYPQv39/nsuAlIxy44vFYsFLL72EAQMGYODAgZg5cyZ8Pp9AjltuuQWffPIJr90A4PTp03jyySfRt29fDBs2DGvXruXObdmyBSNGjEDPnj0xcOBAfPHFF6rbxWKxYNasWXjttddw1113ISsrC6mpqRg8eDD+/e9/AwA++eQT3HzzzXjxxRc5K2q7du3w5z//WVRRZdtl6NCh6NixI3Q6Hbp06YL77ruPOz948GDs3LkTAGMJ//e//40+ffrg7rvvxty5c3nvnsGDB+OLL77APffcg169euG5556Dy+UCADQ2NmLChAno168f+vTpgwkTJqC6ulp1OzRXiLLaQqmursa2bdu4gQUAunbtisWLF2Pfvn2YNGkSpkyZAqPRCADo06cP9uzZAwDYu3cvunbtir1793K/+/btG7VMdXV1cLlc2Lp1KyZPnoxXXnkFP/zwA5YtW4bFixfjs88+w4ULFwAA//vf/1BUVIRFixZh27ZtaN26NedWcOONN2L79u2YNWsW9u3bB7fbzavngw8+QFlZGVauXInCwkIYjUae72xdXR0aGxuxadMmvPnmm7y8FEXhmWeeQbdu3bB161Z8+eWX+PLLL7Ft2zYAwNtvv42xY8di//792LBhA+6++27V7XDmzBlUVVVJ+snu2rULd955p6opzBtvvBGrVq3CvHnzcPjwYe5FIcaSJUuwdetWrFq1CitWrEBRUZEgzZo1a/Duu+9i165d8Hg8mD9/Pnfutttuw/r167Fr1y5cd911+Ne//qVYTgIhHvTo0QOdOnXirFxKxgWLxYKtW7fi7bffxrRp09DY2AgAePPNN2GxWFBUVIT//e9/WLVqFU+ZZdm+fTuKi4uxfv167Nu3Dx999BHy8vJk69+6dSvmz5+P+fPno7CwELt27dKsHUpKStCtWzfs3r0bo0aNwj//+U8cPnwYGzZswPvvv49p06bBZrPJyig3vrzwwgtISUlBYWEhVq5ciR07dvB8KEtKStC1a1fs2LEDzzzzDC+v3W7HuHHjMGrUKOzcuRMzZ87E1KlTcerUKQDAyy+/jGnTpuHAgQNYs2YN+vXrp7odDhw4AJfLhTvvvDNsml27duGuu+5SVe6NN96IhQsXYvHixTh+/DikdrD/9NNPUVFRgaKiIixYsAA//PCDIM1PP/2EefPm4eeff8bx48exfPlyAMy7acyYMdi0aRM2bdqE9PT0mLraJRtEWW1hTJw4ET179sSgQYPQtm1bTJ48mTt39913o2PHjtDr9RgxYgQuv/xylJSUAOArq8XFxZgwYQJPWe3Tp0/UsqWkpOCZZ55BamoqRowYAbPZjLFjxyInJwfXXHMNrr76ahw/fhwA8O233+If//gHOnXqhLS0NEyaNAnr16+H1+tF79698cknn6C0tBQTJkzALbfcgnfffRc+nw80TWPJkiV46aWXkJeXh5ycHEyYMIE3dabX6zF58mSkpaUJfJsOHz4Mk8mESZMmIS0tDV27dsWDDz7IfeWnpKTg/PnzMJlMyM7Oxk033RT2eo1GI3r37s37z263cxbiDh06hM1rNpvRvn177jc7TcVaOcUYPXo0XnnlFWzfvh2PP/44br31VsyZM0c07U8//YSxY8eiU6dOaN26Nf7yl78I0owZMwZXXHEFMjIyMHz4cJ6V/o9//CNycnKQlpaGv//97zh27BgsFkvY6yE0X2bMmIHBgwejW7dunJVQC7744gsMGzYM1157rcCNp66uDuPGjcOwYcNw77334tChQxHV0aFDBzQ2NioaF1JSUjBx4kSkpqZi0KBByMrKQllZGXw+H9auXYvnn38eOTk56NKlC5588klRRSMlJQU2mw1nzpwBTdO46qqr0KFDB9n6f/rpJ4wZMwa//e1vkZWVhUmTJkV0vWJ06dIF999/PwwGA0aMGIGqqipMnDgRaWlpGDBgANLS0nD+/HlZGaXGl7q6OmzZsgUvvfQSsrKyOGtkcPt26NABjz/+OFJSUgTj7ubNm3HppZfi/vvvR0pKCq677joMGzYM69at49r11KlTsFqtaN26Na6//vqw13vo0CHemDt06FAAQENDA9q0aSPpfhA67i5atIgbd1955RXRPBMmTMD48eOxevVq3H///Rg4cGDYBW4//fQTJkyYgNatW6NTp04YO3asIM3jjz+Ojh07Ii8vD3fccQc37rZp0wbDhg1DZmYmcnJy8Mwzz3Dv6IsB4rPawpg9ezZuvfVW7NmzB88//zzMZjNatWoFAFi5ciUWLFiAiooKAMzXrNlsBgD07dsX7733HoxGIyiKwt13341PP/0U5eXlsFgs6N69e9Sy5eXlwWAwAAA3WLVr1447n56ezn3hV1ZWYuLEiTzLol6vR319PTp27IhBgwZh0KBBoCgKu3fvxrPPPosrrrgCd955JxwOB8aMGcPlo2mam7IDmIc+PT1dVMaKigpOyWTx+Xzc77fffhuzZs3C3XffjS5dumDSpEm44447RMsK57PKWlqMRiO6du0atq1qa2u530OGDEFxcTGWLl0q+pJkYRcteDweFBUVYcqUKeje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\n",
            "text/plain": [
              "<Figure size 792x288 with 2 Axes>"
            ]
          },
          "metadata": {}
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Date</th>\n",
              "      <th>Time</th>\n",
              "      <th>ecg1</th>\n",
              "      <th>ecg2</th>\n",
              "      <th>ecg3</th>\n",
              "      <th>ecg4</th>\n",
              "      <th>ecg5</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>2021-04-07</td>\n",
              "      <td>16:20:12.136000</td>\n",
              "      <td>-2.969501e-14</td>\n",
              "      <td>-3.241481e-13</td>\n",
              "      <td>-1.728018e-12</td>\n",
              "      <td>-6.065765e-12</td>\n",
              "      <td>-1.601680e-11</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>2021-04-07</td>\n",
              "      <td>16:20:12.138000</td>\n",
              "      <td>-8.499545e-16</td>\n",
              "      <td>-5.554848e-14</td>\n",
              "      <td>-4.767371e-13</td>\n",
              "      <td>-2.066522e-12</td>\n",
              "      <td>-5.939035e-12</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>2021-04-07</td>\n",
              "      <td>16:20:12.140000</td>\n",
              "      <td>-1.053786e-14</td>\n",
              "      <td>-1.611588e-13</td>\n",
              "      <td>-1.049425e-12</td>\n",
              "      <td>-4.155571e-12</td>\n",
              "      <td>-1.179033e-11</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>2021-04-07</td>\n",
              "      <td>16:20:12.142000</td>\n",
              "      <td>2.876824e-14</td>\n",
              "      <td>2.082946e-13</td>\n",
              "      <td>6.777858e-13</td>\n",
              "      <td>1.325488e-12</td>\n",
              "      <td>1.750018e-12</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>2021-04-07</td>\n",
              "      <td>16:20:12.144000</td>\n",
              "      <td>4.329652e-14</td>\n",
              "      <td>3.390716e-13</td>\n",
              "      <td>1.256797e-12</td>\n",
              "      <td>3.049395e-12</td>\n",
              "      <td>5.713758e-12</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>...</th>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>29995</th>\n",
              "      <td>2021-04-07</td>\n",
              "      <td>16:21:12.474000</td>\n",
              "      <td>8.968817e-16</td>\n",
              "      <td>2.136266e-15</td>\n",
              "      <td>-2.629700e-14</td>\n",
              "      <td>-2.181268e-13</td>\n",
              "      <td>-9.091869e-13</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>29996</th>\n",
              "      <td>2021-04-07</td>\n",
              "      <td>16:21:12.476000</td>\n",
              "      <td>1.306427e-14</td>\n",
              "      <td>1.204183e-13</td>\n",
              "      <td>5.432755e-13</td>\n",
              "      <td>1.627322e-12</td>\n",
              "      <td>3.693566e-12</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>29997</th>\n",
              "      <td>2021-04-07</td>\n",
              "      <td>16:21:12.478000</td>\n",
              "      <td>1.338055e-14</td>\n",
              "      <td>1.231649e-13</td>\n",
              "      <td>5.545122e-13</td>\n",
              "      <td>1.655788e-12</td>\n",
              "      <td>3.741431e-12</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>29998</th>\n",
              "      <td>2021-04-07</td>\n",
              "      <td>16:21:12.480000</td>\n",
              "      <td>7.411542e-16</td>\n",
              "      <td>-8.031105e-16</td>\n",
              "      <td>-4.813862e-14</td>\n",
              "      <td>-3.150149e-13</td>\n",
              "      <td>-1.215306e-12</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>29999</th>\n",
              "      <td>2021-04-07</td>\n",
              "      <td>16:21:12.482000</td>\n",
              "      <td>-2.367745e-14</td>\n",
              "      <td>-2.373321e-13</td>\n",
              "      <td>-1.180091e-12</td>\n",
              "      <td>-3.951729e-12</td>\n",
              "      <td>-1.019676e-11</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>30000 rows × 7 columns</p>\n",
              "</div>"
            ],
            "text/plain": [
              "             Date             Time  ...          ecg4          ecg5\n",
              "0      2021-04-07  16:20:12.136000  ... -6.065765e-12 -1.601680e-11\n",
              "1      2021-04-07  16:20:12.138000  ... -2.066522e-12 -5.939035e-12\n",
              "2      2021-04-07  16:20:12.140000  ... -4.155571e-12 -1.179033e-11\n",
              "3      2021-04-07  16:20:12.142000  ...  1.325488e-12  1.750018e-12\n",
              "4      2021-04-07  16:20:12.144000  ...  3.049395e-12  5.713758e-12\n",
              "...           ...              ...  ...           ...           ...\n",
              "29995  2021-04-07  16:21:12.474000  ... -2.181268e-13 -9.091869e-13\n",
              "29996  2021-04-07  16:21:12.476000  ...  1.627322e-12  3.693566e-12\n",
              "29997  2021-04-07  16:21:12.478000  ...  1.655788e-12  3.741431e-12\n",
              "29998  2021-04-07  16:21:12.480000  ... -3.150149e-13 -1.215306e-12\n",
              "29999  2021-04-07  16:21:12.482000  ... -3.951729e-12 -1.019676e-11\n",
              "\n",
              "[30000 rows x 7 columns]"
            ]
          },
          "metadata": {},
          "execution_count": 7
        }
      ]
    }
  ]
}